<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Клавиатура</title>
</head>

<body bgcolor="FFFFFF">

<h1><img align="center" src="../../../../icons/keyboard.gif" width="32" height="32">
<em>Клавиатура</em></h1>

<p><table>
<tr><td><strong>Библиотека:</strong></td>
	<td><a href="index.html">Ввод/вывод</a></td></tr>
<tr><td><strong>Введён в:</strong></td>
	<td>2.2.0</td></tr>
<tr><td valign="top"><strong>Внешний вид:</strong></td>
	<td valign="top"><img src="../../../../img-libs/keyboard.png" width="148" height="28"></td></tr>
</table></p>

<h2>Поведение</h2>

<p>Этот компонент позволяет схеме считывать символы с клавиатуры, если только они представимы в 7-разрядном ASCII коде. После нажатия на компонент с помощью Инструмента Нажатие, пользователь может печатать символы, которые накапливаются в буфере. ASCII значение крайнего левого символа буфера постоянно поступает на крайний правый выход. Когда срабатывает тактовый вход, крайний левый символ исчезает из буфера и новый левый символ поступает на крайний правый выход.</p>

<p>Поддерживаемые для буфера символы включают все печатаемые ASCII символы, а также пробел, символ перехода на новую строку, Backspace и Control-L. В дополнение, клавиши стрелка влево и стрелка вправо перемещают курсор внутри буфера и клавиша Delete удаляет символ справа от курсора (если он есть).</p> 

<p>Компонент асинхронен в том смысле, что когда буфер пуст, и пользователь печатает символ, то символ посылается на выход немедленно, не дожидаясь импульса на тактовом входе.</p>

<h2>Контакты</h2>

<dl>

<dt>Западный край, отмечен треугольником (вход, разрядность равна 1)</dt>
<dd>Тактовый вход - когда срабатывает при ненулевом значении контакта разрешения чтения, крайний левый символ буфера удаляется, и выходы обновляются чтобы отразить новое состоянию буфера.</dd> 

<dt>Южный край, левый контакт (вход, разрядность равна 1)</dt>
<dd>Разрешение чтения - когда значение равно 1 (или плавающее, или ошибка), срабатывание тактового входа считает левый символ из буфера. Тактовый вход игнорируется, когда значение входа Разрешение чтения - 0.</dd>

<dt>Южный край, второй контакт слева (вход, разрядность равна 1)</dt>
<dd>Очистка - когда значение равно 1, буфер очищается и больше не принимает символов.</dd>

<dt>Южный край, второй контакт справа (выход, разрядность равна 1)</dt>
<dd>Наличие - значение равно 1, когда буфер содержит хотя бы один символ, и 0, когда буфер пуст.</dd>

<dt>Южный край, правый контакт (выход, разрядность равна 7)</dt>
<dd>Данные - 7-битный ASCII код для левого символа в буфере, или 0, если буфер пуст.</dd>

</dl>

<h2>Атрибуты</h2>

<dl>

<dt>Длина буфера</dt>
<dd>Количество символов, которые буфер может одновременно хранить.</dd>

<dt>Срабатывание</dt>
<dd>Если значение - <q>Передний фронт</q>, то когда значение тактового входа изменяется с 0 на 1, то левый символ считывается (если разрешено входом Разрешение чтения). Если же значение - <q>Задний фронт</q>, то это происходит, когда значение тактового входа меняется с 1 на 0.</dd>

</dl>

<h2>Поведение Инструмента Нажатие</h2>

<p>Нажатие кнопки мыши на компоненте даёт ему фокус ввода клавиатуры, и отображается вертикальный курсор.</p>

<p>Каждый введённый символ будет помещаться в буфер, пока буфер не достиг предела вместимости, и если символ - один из поддерживаемых компонентом: печатаемые символы ASCII кода, а также пробел, символ перехода на новую строку, Backspace и Control-L. В дополнение, пользователь может нажимать клавиши стрелка влево и стрелка вправо чтобы переместить курсор внутри буфера и клавишу Delete для удаления символ справа от курсора (если он есть).</p>

<h2>Поведение Инструмента Текст</h2>

<p>Нет.</p>

<p><a href="../index.html">Назад к <em>Справке по библиотеке</em></a></p>

</body>
</html>
